package com.itlong.cloud.commons.service;

import com.itlong.cloud.POJO.DTO.operate.OperateLoggerLoginLogGetPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateLoggerOperationLogGetPageDTO;
import com.itlong.cloud.POJO.PO.OperationLogPO;
import com.itlong.cloud.POJO.VO.operate.OperateLonginLogVO;
import com.itlong.cloud.POJO.VO.operate.OperateOperationLogVO;
import com.itlong.cloud.utils.page.Page;

import java.util.Map;

/**
 * <desc>
 *      用户操作日志业务处理接口
 * </desc>
 *
 * @createDate 2017/10/16
 */
public interface IOperationLogService {
    /**
     * <desc>
     *      保存日志
     * </desc>
     *
     * @param operationLogPO 操作日志实体类
     * @return sql执行行数
     * @author Jiaqi.X
     * @createDate 2017/09/30
     */
    Integer save(OperationLogPO operationLogPO) throws Exception;

    /**
     * <desc>
     *      获取分页数据
     * </desc>
     *
     * @param pageDTO 查询参数DTO
     * @return page模型
     * @author Qiang.S
     * @createDate 2018/04/12
     */
    Page<OperateOperationLogVO> getPage(OperateLoggerOperationLogGetPageDTO pageDTO) throws Exception;

    /**
     * <desc>
     *      删除功能
     * </desc>
     *
     * @param ids 操作日志id数组
     * @return sql执行行数
     * @author Qiang.S
     * @createDate 2018/04/12
     */
    Integer delete(String ids);

    /**
     * <desc>
     *      保存开发者访问日志
     * </desc>
     *
     * @param map 日志信息
     * @return
     * @author wangzhi
     * @createDate 2018/12/19
     */
    Integer saveDeveloperLog(Map<String, Object> map) throws Exception;

    /**
     * <desc>
     *      保存开发者异常日志
     * </desc>
     *
     * @param map 日志信息
     * @return
     * @author Qiang.S
     * @createDate 2019/09/18
     */
    Integer saveDeveloperExceptionLog(Map<String, Object> map) throws Exception;
}
